// pages/address/address.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address: [] // 地址列表
    , addressBackups: [] // 地址备份（编辑地址时用）
    , hasAddress: false // 记录用户是否有地址
    , token: "" // token
    , isOrder: "" // 订单标记
    , state: 0 // 页面状态
  },

  // 跳转至新增收货地址
  jumpToAddAddress() {
    wx.navigateTo({
      url: '../addAddress/addAddress',
    })
  },

  // 密码暗文转换
  hiddenPhone() {
    // wx.navigateTo({
    //   url: '../editAddress/editAddress',
    //  })
    for(let i=0, len=this.data.address.length; i<len; i++) {
      let tempArr = this.data.address[i].phone.split("")
      tempArr.splice(3, 4 , "*", "*", "*", "*")
      this.data.address[i].phone = tempArr.join("")
    }
    this.setData({
      address: this.data.address
    })
  },

  // 获取用户token
  getToken() {
    wx.getStorage({
      key: 'token',
      success: res => {
        console.log("用户token为：", res.data)
        this.data.token = res.data
        // 获取用户地址列表
        this.getUserAddress()
      },
      fail: err => {
        console.log("token获取失败：", err)
      }
    })
  },

  // 获取用户地址列表
  getUserAddress() {
    wx.request({
      url: 'http://api_devs.wanxikeji.cn/api/userAddressList',
      data: {
        token: this.data.token
      },
      success: res => {
        console.log(res.data.data)
        this.data.address = res.data.data
        this.data.addressBackups = JSON.parse(JSON.stringify(res.data.data))
        this.setData({
          address: res.data.data
        })
        // 密码暗文转换
        this.hiddenPhone()
      },
      fail: err => {
        console.log("用户地址获取失败：", err)
      }
    })
  },

  // 编辑地址
  editAddress(e) {
    console.log(e.currentTarget.dataset.index)
    // 将需要修改的地址存进缓存
    wx.setStorage({
      key: 'editAddress',
      data: this.data.addressBackups[e.currentTarget.dataset.index],
      success: () => {
        console.log("editAddress is storaged")
        wx.navigateTo({
          url: '../editAddress/editAddress',
        })
      }, 
      fail: err => {
        console.log("修改地址存储失败", err)
      }
    })
  },

  // 订单地址选择
  selectAddress(e) {
    if (this.data.isOrder) {
      let param = JSON.stringify(this.data.addressBackups[e.currentTarget.dataset.index])
      console.log(param)
      wx.setStorage({
        data: param,
        key: 'selectaddress',
      })
      wx.navigateBack({
        delta: 1,
      })
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 记录页面地址状态
    console.log("页面传参为：", options.hasAddress)
    this.data.hasAddress = options.hasAddress
    this.data.isOrder = options.isOrder
    this.setData({
      hasAddress: options.hasAddress === "false" ? false : true,
      isOrder: options.isOrder
    })
    if (options.hasAddress) {
      // 获取用户token(同时获取地址列表)
      this.getToken()
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.data.state++
    if(this.data.state >= 2){
      this.getUserAddress();
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})